home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / Feelin021015 / Examples / String.e < prev    next >
Encoding:
Text File  |  2002-10-28  |  5.4 KB  |  164 lines

  1. OPT PREPROCESS
  2.  
  3. MODULE  'graphics/gfx','graphics/gfxmacros','graphics/text','graphics/rastport','graphics/regions',
  4.         'intuition/intuition',
  5.         'feelin','libraries/feelin','a4'
  6.  
  7. PROC main()
  8.    DEF c,w,str,txt,
  9.        myback[16]:STRING,mycursor[16]:STRING,mycursor2[16]:STRING,myblink[16]:STRING,
  10.        upstr
  11.  
  12.    sys_SGlob() -> Save E Global base
  13.  
  14.    StringF(myback,'F:\h\0',{drawfunc})
  15.    StringF(mycursor,'F:\h\0',{drawcursor})
  16.    StringF(mycursor2,'F:\h\0',{drawcursor2})
  17.    StringF(myblink,'F:\h\0',{drawblink})
  18.  
  19.    upstr := '`SsYea baby !!'
  20.  
  21.    IF feelinbase := OpenLibrary('feelin.library',FV_VERSION)
  22.          c := ClientObject,
  23.             Child, w := WindowObject, FA_Window_Title, 'Feelin : String',
  24.                Child, Page, FA_Group_PageTitles, ['Examples','Custom','Notification'],
  25.                   Child, VGroup,
  26.                      Child, BarTitle('Numeric string'),
  27.                      Child, FO_String, FA_String_MaxLen,32, FA_String_Accept,{__Num}, FA_String_Integer, 1234, End,
  28.                      Child, BarTitle('Hexadecimal string'),
  29.                      Child, FO_String, FA_String_MaxLen,80, FA_String_Accept,{__Hex}, End,
  30.                      Child, BarTitle('Alphabetic string'),
  31.                      Child, FO_String, FA_String,{__Str}, FA_String_MaxLen,80, FA_String_Reject,{__Num}, FA_String_Format,FV_String_Left,   End,
  32.                      Child, FO_String, FA_String,{__Str}, FA_String_MaxLen,80, FA_String_Reject,{__Num}, FA_String_Format,FV_String_Center, End,
  33.                      Child, FO_String, FA_String,{__Str}, FA_String_MaxLen,80, FA_String_Reject,{__Num}, FA_String_Format,FV_String_Right,  End,
  34.                   End,
  35.  
  36.                   Child, VGroup, FA_FixedHeight,TRUE,
  37.                      Child, F_NewObjA(FC_String,[
  38.                             StringFrame,
  39.                             StringBack,
  40.                             FA_Font,'Garnet/16',
  41.                             FA_String, {__Str},
  42.                             FA_String_Format, FV_String_Left,
  43.                             End,
  44.  
  45.                      Child, F_NewObjA(FC_String,[
  46.                             StringFrame,
  47.                             FA_Back, myback,
  48.                             FA_Font,'Times/36',
  49.                             FA_String, {__Str},
  50.                             FA_String_Format, FV_String_Center,
  51.                             FA_String_BlinkSpeed, 5,
  52.                             FA_String_TextActive,   'c:0044DD',
  53.                             FA_String_TextInactive, 'c:00277F',
  54.                             FA_String_TextCursor,   'c:0066EE',
  55.                             FA_String_Cursor, mycursor,
  56.                             FA_String_Blink,  myblink,
  57.                             End,
  58.  
  59.                      Child, F_NewObjA(FC_String,[
  60.                             StringFrame,
  61.                             FA_Back, myback,
  62.                             FA_Font, 'Diamond/20',
  63.                             FA_String, {__Str},
  64.                             FA_String_Format, FV_String_Right,
  65.                             FA_String_Cursor, mycursor2,
  66.                             FA_String_TextCursor, 's:4',
  67.                             End,
  68.                   End,
  69.  
  70.                   Child, VGroup,
  71.                      Child, TextObject, FA_Fixed,TRUE, DontChain, FA_Text,'`j`Ss`<0>All modifications done in the\nStringObject below will be\nreported to the TextObject.\n\nYou can enter formating codes to\nadjust text. Remember the special\nchar is `<8>```<0>. `Sg(``c will center text)`Sn', End,
  72.                      Child, str := String_(upstr,80),
  73.                      Child, txt := TextObject, GaugeFrame, DontChain, FA_Inner,[3,2,3,2]:CHAR,FA_Font,FP_Font_Big, FA_FixedHeight,TRUE, FA_Text_Static,TRUE, FA_Text_PreParse,'`l`n`Sn`<0>', FA_Text,upstr, End,
  74.                   End,
  75.                End,
  76.             End,
  77.          End
  78.  
  79.          IF c
  80.             F_DoA(str,FM_Notify,[FA_String,FV_Notify_Always,txt,3,FM_Set,FA_Text,FV_Notify_Value])
  81.  
  82.             F_DoA(w,FM_Notify,[FA_Window_CloseRequest,TRUE,FV_Notify_Client,2,FM_Client_ReturnID,FV_Client_Quit])
  83.             F_Set(w,FA_Window_Open,TRUE)
  84.  
  85.             WHILE F_DoA(c,FM_Client_WaitEvent,NIL) <> FV_Client_Quit DO NOP
  86.  
  87.             F_DisposeObj(c)
  88.          ENDIF
  89.  
  90.       CloseLibrary(feelinbase)
  91.    ELSE
  92.       WriteF('Unable to open feelin.library\n')
  93.    ENDIF
  94. ENDPROC
  95.  
  96. PROC drawfunc(render=A0:PTR TO feelinRender,region=A2:PTR TO feelinRect)
  97.    sys_RGlob()
  98.    drawstri(render.rport,region,render.pens[FV_Pen_Fill],render.pens[FV_Pen_HalfShadow])
  99. ENDPROC
  100. PROC drawcursor(render=A0:PTR TO feelinRender,rect=A1:PTR TO feelinRect,region=A2)
  101.    DEF x1,y1,x2,y2,rp,
  102.        ap,bp,cp
  103.  
  104.    sys_RGlob()
  105.  
  106.    x1 := rect.x1 ; x2 := rect.x2
  107.    y1 := rect.y1 ; y2 := rect.y2 ; rp := render.rport
  108.  
  109.    ap := render.pens[FV_Pen_Shine]
  110.    bp := render.pens[FV_Pen_Shadow]
  111.    cp := render.pens[FV_Pen_HalfShine]
  112.  
  113.    drawstri(rp,region,ap,cp)
  114.  
  115.    _APen(ap) ; _Move(x1+1,y2) ; _Draw(x2,y2) ; _Draw(x2,y1+1)
  116.    _APen(bp) ; _Move(x1,y2-1) ; _Draw(x1,y1) ; _Draw(x2-1,y1)
  117. ENDPROC
  118. PROC drawcursor2(render=A0:PTR TO feelinRender,region=A2:PTR TO feelinRect)
  119.    sys_RGlob()
  120.    drawstri(render.rport,region,render.pens[FV_Pen_Shine],render.pens[FV_Pen_HalfShine])
  121. ENDPROC
  122. PROC drawblink(render=A0:PTR TO feelinRender,rect=A1:PTR TO feelinRect,region=A2)
  123.    DEF x1,y1,x2,y2,rp,
  124.        ap,bp,cp
  125.  
  126.    sys_RGlob()
  127.  
  128.    x1 := rect.x1 ; x2 := rect.x2
  129.    y1 := rect.y1 ; y2 := rect.y2 ; rp := render.rport
  130.    ap := render.pens[FV_Pen_HalfShine]
  131.    bp := render.pens[FV_Pen_HalfDark]
  132.    cp := render.pens[FV_Pen_Fill]
  133.  
  134.    drawstri(rp,region,ap,cp)
  135.  
  136.    _APen(ap) ; _Move(x1+1,y2) ; _Draw(x2,y2) ; _Draw(x2,y1+1)
  137.    _APen(bp) ; _Move(x1,y2-1) ; _Draw(x1,y1) ; _Draw(x2-1,y1)
  138. ENDPROC
  139.  
  140. PROC drawstri(rp:PTR TO rastport,rect:PTR TO feelinRect,a,b)
  141.    DEF x1,y1,x2,y2,x3,pt
  142.  
  143.    pt := [%1111111100000000,%0111111110000000,%0011111111000000,%0001111111100000,
  144.           %0000111111110000,%0000011111111000,%0000001111111100,%0000000111111110,
  145.           %0000000011111111,%1000000001111111,%1100000000111111,%1110000000011111,
  146.           %1111000000001111,%1111100000000111,%1111110000000011,%1111111000000001]:INT
  147.  
  148.    x1 := rect.x1 ; x3 := rect.x2 ; x2 := x3 - x1 / 3 + x1
  149.    y1 := rect.y1 ; y2 := rect.y2
  150.  
  151.    SetAfPt(rp,pt,4)
  152.    _APen(a)
  153.    _BPen(b)
  154.    _Boxf(x2+1,y1,x3,y2)
  155.    SetAfPt(rp,[-1,-1],2)
  156.  
  157.    _APen(b)
  158.    _Boxf(x1,y1,x2,y2)
  159. ENDPROC
  160.  
  161. __Hex: CHAR 'ABCDEFabcdef'
  162. __Num: CHAR '0123456789',0
  163. __Str: CHAR 'Lotan is my lord',0
  164.